package com.jn.retrofit.interceptor;

import androidx.annotation.NonNull;

import java.io.IOException;

import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;


/**
 * 全局 Query 参数（所有 GET/POST 请求的 URL 后自动添加）
 */
public class QueryParamsInterceptor implements Interceptor {
    @NonNull
    @Override
    public Response intercept(@NonNull Chain chain) throws IOException {
        // 1. 获取原始请求和URL
        Request originalRequest = chain.request();
        HttpUrl originalUrl = originalRequest.url();

        // 2. 构建新URL，添加全局Query参数
        HttpUrl newUrl = originalUrl.newBuilder()
                .addQueryParameter("appKey", "your_app_key") // 固定参数
                .addQueryParameter("timestamp", String.valueOf(System.currentTimeMillis() / 1000)) // 时间戳
                .addQueryParameter("deviceId", getDeviceId()) // 设备ID（动态获取）
                .build();

        // 3. 构建新请求
        Request newRequest = originalRequest.newBuilder()
                .url(newUrl)
                .build();

        // 4. 继续执行请求
        return chain.proceed(newRequest);
    }

    // 获取设备唯一标识
    private String getDeviceId() {
        // 实际项目中通过设备信息生成
        return "device_123456";
    }
}